<?php

namespace App\Interfaces;
use App\Interfaces\GoodsStockHistoryService;

/**
 * 商品库存接口
 * @package App\Interfaces
 */
interface StockService {

    /**
     * 库存操作
     * @param $goods_id            商品id
     * @param $user_id             用户id
     * @param $goods_stock         库存数量
     * @param $operation           库存操作，plus:加库存；reduce:减库存
     * @param $describe            操作描述
     * @param string $is_all_goods_exception    //是否抛出所有商品的异常信息，0：不抛出所有的商品异常，只抛出第一个商品的第一个异常；1：抛出所有的商品异常
     * @param $goodsStockHistoryService            库存操作日志记录服务
     * @param $solrService            solr服务
     * @return mixed
     */
    public function updateStock($goods_id, $user_id, $goods_stock, $operation, $describe, GoodsStockHistoryService $goodsStockHistoryService, $is_all_goods_exception = 0);


    /**
     * 批量库存操作
     * @param  [type] $goods                    [商品数组]
     * @param  [type] $user_id                  [操作的用户id]
     * @param  [type] $goodsStockHistoryService [商品库存操作记录服务]
     * @param  [type] $solrService              [solr服务]
     * @return [type]                           [description]
     */
    public function batchUpdateStock($goods, $user_id, $goodsStockHistoryService, $solrService);

}